package cn.baiweigang.uu.strategy;

import cn.baiweigang.uu.model.*;

public interface StrategyAction {

    /**
     * 策略初始化
     *
     * @return
     */
    boolean init();

    /**
     * 开仓
     *
     * @return
     */
    boolean open();

    /**
     * 平仓
     *
     * @return
     */
    boolean closed();

    /**
     * 收到订单变化消息
     *
     * @param tradeInfo
     */
    void acceptTrade(TradeInfo tradeInfo);

    /**
     * 收到价格变化消息
     *
     * @param kLineInfo
     */
    void priceChange(KLineInfo kLineInfo);

    /**
     * 收到基差变化消息
     *
     * @param basisInfo
     */
    void basisChange(BasisInfo basisInfo);

    /**
     * 收到持仓信息变化消息
     *
     * @param positionInfo
     */
    void positionChange(PositionInfo positionInfo);

    /**
     * 设置账户信息
     *
     * @param accountInfo
     */
    void setAccountInfo(AccountInfo accountInfo);

    /**
     * 获取策略信息
     *
     * @return
     */
    StrategyInfo getStrategy();

}
